<?php
require_once ('persona/dao_persona_nuevo.php');
class ci_alumnopopup extends sapes_ci
{
	protected $s__seleccion;
	protected $s__datos_filtro;
	protected $s__where;
	//-----------------------------------------------------------------------------------
	//---- Eventos ----------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function evt__nuevo()
	{
		$this->set_pantalla('pant_edicion');
	}
	
	//-----------------------------------------------------------------------------------
	//---- filtro_persona ---------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__filtro_persona(sapes_ei_filtro $filtro)
	{
		if(isset($this->s__datos_filtro)){
			$filtro->set_datos($this->s__datos_filtro);
			$this->s__where=$filtro->get_sql_where();
		}
	}

	function evt__filtro_persona__filtrar($datos)
	{
		$this->s__datos_filtro = $datos;
	}

	function evt__filtro_persona__cancelar()
	{
		unset($this->s__datos_filtro);
	}

	//-----------------------------------------------------------------------------------
	//---- cuadro_alumno ---------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__cuadro_alumno(sapes_ei_cuadro $cuadro)
	{
		$this->dep('cuadro_alumno')->desactivar_modo_clave_segura();
		if(isset($this->s__datos_filtro))
		{
			$datos=dao_persona_nuevo::get_listado_alumnos($this->s__where);//LISTADO DE ALUMNOS
		}
		else {
			$datos=dao_persona_nuevo::get_listado_alumnos();
		}
		$cuadro->set_datos($datos);
	}
	

	function evt__cuadro_alumno__seleccion($seleccion)
	{
		$this->cn()->cargar_alumno($seleccion);
		$this->cn()->setear_cursor_alumno($seleccion);
		$this->set_pantalla('pant_edicion');
	}

	function evt__cuadro_alumno__borrar($seleccion)
	{
		$this->cn()->cargar_alumno($seleccion);
		$this->cn()->eliminar_alumno($seleccion);
		try{
			$this->cn()->guardar();
		}catch (toba_error_db $error) {
				$sql_state = $error->get_sqlstate();
				if ($sql_state == 'db_23503') { 
					toba::notificacion()->agregar("El alumno no se ha podido eliminar porque esta referenciado", 'error');
					$this->cn()->resetear();
				}else {
					throw $error;
				}
		}
		$this->cn()->resetear();
	}


	//-----------------------------------------------------------------------------------
	//---- formulario_alumno ---------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__frm_alumno(sapes_ei_formulario $form)
	{
		$datos=$this->cn()->get_persona();
		$form->set_datos($datos);
	}

	function evt__frm_alumno__modificacion($datos)
	{
		if ($this->cn()->alumno_seteado() ) {
			$this->cn()->set_alumno($datos);
			try{
					$this->cn()->guardar();
			}catch (toba_error_db $error) {
					$sql_state = $error->get_sqlstate();
					if ($sql_state == 'db_23505') { 
						toba::notificacion()->agregar("El alumno que desea cargar ya existe", 'info');
						$this->cn()->resetear();
					}else {
						throw $error;
					}
			}
			$this->set_pantalla('pant_inicial');
			$this->cn()->resetear();
		}
	}
	
	function evt__frm_alumno__alta($datos)
	{
		$this->cn()->agregar_alumno($datos);
		try{
				$this->cn()->guardar();
		}catch (toba_error_db $error) {
				$sql_state = $error->get_sqlstate();
				if ($sql_state == 'db_23505') { 
					toba::notificacion()->agregar("El alumno que desea cargar ya existe", 'info');
					$this->cn()->resetear();
				}else {
					throw $error;
				}
		}
		$this->cn()->resetear();
		$this->set_pantalla('pant_inicial');
	}

	function evt__frm_alumno__cancelar()
	{
		unset($this->s__seleccion);
		$this->set_pantalla('pant_inicial');
		$this->cn()->resetear();
	}

	

}
?>
